package com.quwan.manager.controller.dto;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.quwan.constans.AppConst;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * @author quan
 * @date 2021-11-22 17:51
 */

@Data
@Accessors(chain = true)
public class MsgListDTO implements Serializable {
    private static final long serialVersionUID = -3063559149002537654L;
    @ApiModelProperty("消息id")
    private String msgId;
    @ApiModelProperty("消息标题")
    private String title;
    @ApiModelProperty("消息内容")
    private String body;
    @ApiModelProperty("消息类型：1-系统,2-资讯")
    private Byte type;
    @JsonFormat(pattern = AppConst.DATE_SHOW_FORMAT)
    @ApiModelProperty("创建时间")
    private LocalDateTime createTime;
    @ApiModelProperty("创建人Id")
    private Long createUserId;
    @JsonFormat(pattern = AppConst.DATE_SHOW_FORMAT)
    @ApiModelProperty("上次修改时间")
    private LocalDateTime lastModifyTime;
    @ApiModelProperty("上次修改人")
    private Long lastModifyUserId;
    @ApiModelProperty("消息状态（（-1-作废,0-未提交，1-待审核，2-已审核，3-审核不通过，4-已发布）")
    private Byte status;
    @ApiModelProperty("是否全部发送：0-否，1-是")
    private Byte ifAll;
    @ApiModelProperty("是否延时发送：0-否，1-是")
    private Byte ifDelay;
    @ApiModelProperty("发送时间")
    @JsonFormat(pattern = AppConst.DATE_SHOW_FORMAT)
    private LocalDateTime pushTime;
    @ApiModelProperty("审核人id")
    @TableField(value = "audit_user_id")
    private Long auditUserId;
    @TableField(value = "创建人")
    private String createUserName;
    @ApiModelProperty("审核人")
    private String auditUserName;
    @ApiModelProperty("审核意见")
    private String auditOpinion;
    @ApiModelProperty("消息推送返回的id")
    private String messageId;
    @ApiModelProperty("发布时间")
    @JsonFormat(pattern = AppConst.DATE_SHOW_FORMAT)
    private LocalDateTime publishTime;
    @ApiModelProperty("发布人id")
    private Long publishUserId;
    @ApiModelProperty("发布人名称")
    private String publishUserName;
    @ApiModelProperty("提交时间")
    @JsonFormat(pattern = AppConst.DATE_SHOW_FORMAT)
    private LocalDateTime commitTime;
    @ApiModelProperty("提交人id")
    private Long commitUserId;
    @ApiModelProperty("提交人名称")
    private String commitUserName;
    @ApiModelProperty("撤销时间")
    @JsonFormat(pattern = AppConst.DATE_SHOW_FORMAT)
    private LocalDateTime cancelTime;
    @ApiModelProperty("撤销人id")
    private Long cancelUserId;
    @ApiModelProperty("撤销人名称")
    private String cancelUserName;
    @ApiModelProperty("审核时间")
    @JsonFormat(pattern = AppConst.DATE_SHOW_FORMAT)
    private LocalDateTime auditTime;
}
